﻿using Logica.Modulos.ClasesLogica;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

namespace SICON_PI_WSGESTION
{
    /// <summary>
    /// Descripción breve de Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // Para permitir que se llame a este servicio web desde un script, usando ASP.NET AJAX, quite la marca de comentario de la línea siguiente. 
    // [System.Web.Script.Services.ScriptService]
    public class WSGestion : System.Web.Services.WebService
    { 
       
        [WebMethod]
        public MOD_Usuarios ConsultarUsuarioContrasena(MOD_Usuarios objUsuario)
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                MOD_Usuarios objUsuarioContrasena = new MOD_Usuarios();
                objUsuarioContrasena.USU_nombre = logica.SEL_UsuarioContrasena(objUsuario).USU_nombre;
                objUsuarioContrasena.USU_email = logica.SEL_UsuarioContrasena(objUsuario).USU_email;
                objUsuarioContrasena.USU_contrasena = logica.SEL_UsuarioContrasena(objUsuario).USU_contrasena;
                objUsuarioContrasena.USU_cod_puesto = logica.SEL_UsuarioContrasena(objUsuario).USU_cod_puesto;
                objUsuarioContrasena.USU_codusuario = logica.SEL_UsuarioContrasena(objUsuario).USU_codusuario;

                return objUsuarioContrasena;
            }
            catch (Exception exc)
            {
                MOD_Usuarios objUsuarioContrasena = new MOD_Usuarios();
                objUsuarioContrasena.USU_mensajerror = exc.Message.ToString();
                return objUsuarioContrasena;
            }
        }

        [WebMethod]
        public List<MOD_Usuarios> SEL_ESTUSUARIO()
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                List<MOD_Usuarios> ListEstados = logica.SEL_ESTUSUARIO();

                return ListEstados;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_BaseDatos> SEL_BASEDATOS()
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                List<MOD_BaseDatos> Lista = logica.SEL_BASEDATOS();

                return Lista;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_EsqPlanta> SEL_ESQPLANTA()
        {
            try
            {
                LOG_EsqPlanta logica = new LOG_EsqPlanta();
                List<MOD_EsqPlanta> Lista = logica.SEL_ESQPLANTA();

                return Lista;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_ODBC> SEL_ODBC()
        {
            try
            {
                LOG_ODBC logica = new LOG_ODBC();
                List<MOD_ODBC> Lista = logica.SEL_ODBC();

                return Lista;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Usuarios> SEL_EMPRESA()
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                List<MOD_Usuarios> List = logica.SEL_Empresa();

                return List;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Usuarios> SEL_PUESTO()
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                List<MOD_Usuarios> ListPuestos = logica.SEL_PUESTO();

                return ListPuestos;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public Boolean CRE_Usuario(MOD_Usuarios objUsuario)
        {
            try
            {
                LOG_Usuarios Logica = new LOG_Usuarios();
                Logica.CRE_Usuario(objUsuario);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }


        [WebMethod]
        public Boolean CRE_BaseDatos(MOD_BaseDatos objBaseDatos)
        {
            try
            {
                LOG_BaseDatos Logica = new LOG_BaseDatos();
                Logica.CRE_BaseDatos(objBaseDatos);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public int SEL_UsuarioByEmail(string USU_Email)
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                int cant_usu = 0;
                cant_usu = logica.SEL_UsuarioByEmail(USU_Email);
                return cant_usu;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public String GET_Direccion(int codigo)
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                String valor = String.Empty;
                valor = logica.GET_Direccion(codigo);
                return valor;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public String GET_Password(int codigo)
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                String valor = String.Empty;
                valor = logica.GET_PASSWORD(codigo);
                return valor;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_Usuarios> SEL_GRID_USUARIOS()
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                List<MOD_Usuarios> ListaUsuario = logica.SEL_Grid_Usuarios();
                return ListaUsuario;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void UPD_Usuario(MOD_Usuarios objMod)
        {
            try
            {
                LOG_Usuarios Logica = new LOG_Usuarios();
                Logica.UPD_Usuario(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public MOD_Usuarios SEL_UsuarioByID(int Codigo)
        {
            try
            {
                LOG_Usuarios logica = new LOG_Usuarios();
                MOD_Usuarios objUsuarioId = logica.SEL_UsuarioByID(Codigo);
                return objUsuarioId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_Buscar_Clientes> SEL_GRID_BUSCAR_CLIENTES(string conexion, string valor)
        {
            try
            {
                LOG_Buscar_Clientes logica = new LOG_Buscar_Clientes();
                List<MOD_Buscar_Clientes> Lista = logica.SEL_Grid_Buscar_Cliente(conexion, valor);
                return Lista;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod(EnableSession=true)]
        [ScriptMethod()]
        public void SaveWindowHeight(string height)
        {
            HttpContext.Current.Session["WindowHeight"] = height;
        }


        [WebMethod]
        public void DEL_Usuario(int Codigo)
        {
            try
            {
                LOG_Usuarios Logica = new LOG_Usuarios();
                Logica.DEL_Usuario(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public Boolean CRE_Puesto(MOD_Puesto objPuesto)
        {
            try
            {
                LOG_Puesto Logica = new LOG_Puesto();
                Logica.CRE_Puesto(objPuesto);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public Boolean CRE_Empresa(MOD_Empresa objEmpresa)
        {
            try
            {
                LOG_Empresa Logica = new LOG_Empresa();
                Logica.CRE_Empresa(objEmpresa);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public int SEL_PuestoByPuesto(string PUE_NOMBRE)
        {
            try
            {
                LOG_Puesto logica = new LOG_Puesto();
                int cant_pue = 0;
                cant_pue = logica.SEL_PuestoByPuesto(PUE_NOMBRE);
                return cant_pue;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_ODBCByODBC(string ODBC_NOMBRE)
        {
            try
            {
                LOG_ODBC logica = new LOG_ODBC();
                int cant_pue = 0;
                cant_pue = logica.SEL_ODBCByODBC(ODBC_NOMBRE);
                return cant_pue;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_ModuloByModulo(string Modulo_NOMBRE)
        {
            try
            {
                LOG_Modulo logica = new LOG_Modulo();
                int cant_pue = 0;
                cant_pue = logica.SEL_ModuloByModulo(Modulo_NOMBRE);
                return cant_pue;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_EsqPlantaByEsqPlanta(string EsqPlanta_NOMBRE)
        {
            try
            {
                LOG_EsqPlanta logica = new LOG_EsqPlanta();
                int cant_pue = 0;
                cant_pue = logica.SEL_EsqPlantaByEsqPlanta(EsqPlanta_NOMBRE);
                return cant_pue;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_EmpresaByNombre(string EMP_NOMBRE)
        {
            try
            {
                LOG_Empresa logica = new LOG_Empresa();
                int cant_emp = 0;
                cant_emp = logica.SEL_EmpresaByNombre(EMP_NOMBRE);
                return cant_emp;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_BaseDatosByBaseDatos(string NOMBRE)
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                int cant_emp = 0;
                cant_emp = logica.SEL_BaseDatosByBaseDatos(NOMBRE);
                return cant_emp;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Puesto> SEL_GRID_PUESTOS()
        {
            try
            {
                LOG_Puesto logica = new LOG_Puesto();
                List<MOD_Puesto> ListaPuestos = logica.SEL_Grid_Puesto();
                return ListaPuestos;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_ODBC> SEL_GRID_ODBC()
        {
            try
            {
                LOG_ODBC logica = new LOG_ODBC();
                List<MOD_ODBC> ListaODBC = logica.SEL_Grid_ODBC();
                return ListaODBC;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Modulo> SEL_GRID_Modulo()
        {
            try
            {
                LOG_Modulo logica = new LOG_Modulo();
                List<MOD_Modulo> ListaModulo = logica.SEL_Grid_Modulo();
                return ListaModulo;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_BaseDatos> SEL_GRID_BaseDatos()
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                List<MOD_BaseDatos> ListaBaseDatos = logica.SEL_Grid_BaseDatos();
                return ListaBaseDatos;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public List<MOD_EsqPlanta> SEL_GRID_EsqPlanta()
        {
            try
            {
                LOG_EsqPlanta logica = new LOG_EsqPlanta();
                List<MOD_EsqPlanta> ListaEsqPlanta = logica.SEL_Grid_EsqPlanta();
                return ListaEsqPlanta;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Empresa> SEL_GRID_EMPRESA()
        {
            try
            {
                LOG_Empresa logica = new LOG_Empresa();
                List<MOD_Empresa> ListaEmpresa = logica.SEL_Grid_Empresa();
                return ListaEmpresa;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void UPD_Puestos(MOD_Puesto objMod)
        {
            try
            {
                LOG_Puesto Logica = new LOG_Puesto();
                Logica.UPD_Puesto(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public void UPD_ODBC(MOD_ODBC objMod)
        {
            try
            {
                LOG_ODBC Logica = new LOG_ODBC();
                Logica.UPD_ODBC(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public void UPD_Modulo(MOD_Modulo objMod)
        {
            try
            {
                LOG_Modulo Logica = new LOG_Modulo();
                Logica.UPD_Modulo(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public void UPD_BaseDatos(MOD_BaseDatos obj)
        {
            try
            {
                LOG_BaseDatos Logica = new LOG_BaseDatos();
                Logica.UPD_BaseDatos(obj);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void UPD_EsqPlanta(MOD_EsqPlanta objMod)
        {
            try
            {
                LOG_EsqPlanta Logica = new LOG_EsqPlanta();
                Logica.UPD_EsqPlanta(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void UPD_Empresa(MOD_Empresa objMod)
        {
            try
            {
                LOG_Empresa Logica = new LOG_Empresa();
                Logica.UPD_Empresa(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public MOD_Puesto SEL_PuestoByID(int Codigo)
        {
            try
            {
                LOG_Puesto logica = new LOG_Puesto();
                MOD_Puesto objPuestoId = logica.SEL_PuestoByID(Codigo);
                return objPuestoId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public MOD_ODBC SEL_ODBCByID(int Codigo)
        {
            try
            {
                LOG_ODBC logica = new LOG_ODBC();
                MOD_ODBC objODBCId = logica.SEL_ODBCByID(Codigo);
                return objODBCId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public MOD_EsqPlanta SEL_EsqPlantaByID(int Codigo)
        {
            try
            {
                LOG_EsqPlanta logica = new LOG_EsqPlanta();
                MOD_EsqPlanta objEsqPlantaId = logica.SEL_EsqPlantaByID(Codigo);
                return objEsqPlantaId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public MOD_BaseDatos SEL_BaseDatosByID(int Codigo)
        {
            try
            {
                LOG_BaseDatos logica = new LOG_BaseDatos();
                MOD_BaseDatos objBaseDatosId = logica.SEL_BaseDatosByID(Codigo);
                return objBaseDatosId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


        [WebMethod]
        public MOD_Empresa SEL_EmpresaByID(int Codigo)
        {
            try
            {
                LOG_Empresa logica = new LOG_Empresa();
                MOD_Empresa objEmpresaId = logica.SEL_EmpresaByID(Codigo);
                return objEmpresaId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public MOD_Modulo SEL_ModuloByID(int Codigo)
        {
            try
            {
                LOG_Modulo logica = new LOG_Modulo();
                MOD_Modulo objModuloId = logica.SEL_ModuloByID(Codigo);
                return objModuloId;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_Puesto(int Codigo)
        {
            try
            {
                LOG_Puesto Logica = new LOG_Puesto();
                Logica.DEL_Puesto(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_ODBC(int Codigo)
        {
            try
            {
                LOG_ODBC Logica = new LOG_ODBC();
                Logica.DEL_ODBC(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_Modulo(int Codigo)
        {
            try
            {
                LOG_Modulo Logica = new LOG_Modulo();
                Logica.DEL_Modulo(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_EsqPlanta(int Codigo)
        {
            try
            {
                LOG_EsqPlanta Logica = new LOG_EsqPlanta();
                Logica.DEL_EsqPlanta(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_BaseDatos(int Codigo)
        {
            try
            {
                LOG_BaseDatos Logica = new LOG_BaseDatos();
                Logica.DEL_BaseDatos(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void DEL_Empresa(string Codigo)
        {
            try
            {
                LOG_Empresa Logica = new LOG_Empresa();
                Logica.DEL_Empresa(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public Boolean CRE_Estado_Usuario(MOD_Estado_Usuario objEstUsu)
        {
            try
            {
                LOG_Estado_Usuario Logica = new LOG_Estado_Usuario();
                Logica.CRE_Estado_Usuario(objEstUsu);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public Boolean CRE_ODBC(MOD_ODBC objODBC)
        {
            try
            {
                LOG_ODBC Logica = new LOG_ODBC();
                Logica.CRE_ODBC(objODBC); 
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public Boolean CRE_Modulo(MOD_Modulo objModulo)
        {
            try
            {
                LOG_Modulo Logica = new LOG_Modulo();
                Logica.CRE_Modulo(objModulo);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public Boolean CRE_EsqPlanta(MOD_EsqPlanta objEsqPlanta)
        {
            try
            {
                LOG_EsqPlanta Logica = new LOG_EsqPlanta();
                Logica.CRE_EsqPlanta(objEsqPlanta);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public void DEL_Estado_Usuario(int Codigo)
        {
            try
            {
                LOG_Estado_Usuario Logica = new LOG_Estado_Usuario();
                Logica.DEL_Estado_Usuario(Codigo);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public void UPD_Estado_Usuario(MOD_Estado_Usuario objMod)
        {
            try
            {
                LOG_Estado_Usuario Logica = new LOG_Estado_Usuario();
                Logica.UPD_Estado_Usuario(objMod);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Estado_Usuario> SEL_Grid_Estado_Usuarios()
        {
            try
            {
                LOG_Estado_Usuario logica = new LOG_Estado_Usuario();
                List<MOD_Estado_Usuario> ListaEstUsu = logica.SEL_Grid_Estado_Usuario();
                return ListaEstUsu;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_Estado_UsuarioByNombre(string est_usu)
        {
            try
            {
                LOG_Estado_Usuario logica = new LOG_Estado_Usuario();
                int cant_usu = 0;
                cant_usu = logica.SEL_Estado_UsuarioByNombre(est_usu);
                return cant_usu;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Puesto_Permiso> SEL_Puesto_Permiso_By_ID(int codPue)
        {
            try
            {
                LOG_Puesto_Permiso logica = new LOG_Puesto_Permiso();
                List<MOD_Puesto_Permiso> Lista_Puesto_Permiso = logica.SEL_Puesto_Permisos_By_ID(codPue);
                return Lista_Puesto_Permiso;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Puesto_Permiso> SEL_Modulos()
        {
            try
            {
                LOG_Puesto_Permiso logica = new LOG_Puesto_Permiso();
                List<MOD_Puesto_Permiso> ListModulos = logica.SEL_Modulos();
                return ListModulos;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }




        [WebMethod]
        public List<MOD_Puesto_Permiso> SEL_Permiso_By_Modulo()
        {
            try
            {
                LOG_Puesto_Permiso logica = new LOG_Puesto_Permiso();
                List<MOD_Puesto_Permiso> Lista_Permiso = logica.SEL_Permisos_By_Modulo();
                return Lista_Permiso;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public List<MOD_Puesto_Permiso> SEL_Permisos_By_IDMOD_IDPUE(int codMod, int codPue)
        {
            try
            {
                LOG_Puesto_Permiso logica = new LOG_Puesto_Permiso();
                List<MOD_Puesto_Permiso> Lista_Permiso = logica.SEL_Permisos_By_IDMOD_IDPUE(codMod, codPue);
                return Lista_Permiso;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public int SEL_Puesto_Permiso_ModuloByIDs(int codPuesto, int codPermiso, int codModulo)
        {
            try
            {
                LOG_Puesto_Permiso logica = new LOG_Puesto_Permiso();
                int cant_pueper = logica.SEL_Puesto_Permiso_ModuloByIDs(codPuesto, codPermiso, codModulo);
                return cant_pueper;
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        [WebMethod]
        public Boolean CRE_Puesto_Permiso_Modulo(int codPuesto, int codPermiso, int codModulo)
        {
            try
            {
                LOG_Puesto_Permiso Logica = new LOG_Puesto_Permiso();
                Logica.CRE_Puesto_Permiso_Modulo(codPuesto, codPermiso, codModulo);
                return true;
            }
            catch (Exception exc)
            {
                return false;
                throw exc;

            }
        }

        [WebMethod]
        public void DEL_Puesto_Permiso_Modulo(int CodigoLinea)
        {
            try
            {
                LOG_Puesto_Permiso Logica = new LOG_Puesto_Permiso();
                Logica.DEL_Pemriso_Puesto_Modulo(CodigoLinea);
            }
            catch (Exception exc)
            {
                throw exc;
            }
        }


    }
}